今天來練習第一個Dialog
AlertDialog不僅僅提供使用者顯示文字訊息的功能
還有提供使用者輸入資訊、點選確認取消按鈕
甚至連清單方塊ListView也提供
這功能跟Toast一樣不需要拉任何元件
但為求方便
我還是習慣用一個按鈕元件
觸發AlertDialog
隨便設一個按鈕
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<Button
android:id="@+id/btn_toast"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="AlertDialog測試"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
這裡有兩種寫的方法
1.宣告變數
先宣告一個AlertDialog.Builder dialog
dialog.setMessage():設定內文顯是什麼文字
setTitle():設定AlertDialog的標題名
setIcon():設定他的Icon
show():最後把這個AlertDialog顯示出來
AlertDialog.Builder dialog = new AlertDialog.Builder(MainActivity.this);
dialog.setMessage("你成功了")
.setTitle("AlertDialog")
.setIcon(android.R.drawable.presence_away)
.show();
2.省略宣告變數
這寫法簡潔多了
new AlertDialog.Builder(MainActivity.this)
.setMessage("你成功了")
.setTitle("AlertDialog")
.setIcon(android.R.drawable.presence_away)
.show();
當沒有任何按鍵時,你可以點擊手機返回按鈕或是Dialog以外的區塊,來關閉AlertDialog
執行結果:
初始畫面:
點擊按鈕:
若想在Dialog加入按鈕的話
加入
.setNegativeButton("否",null)
.setPositiveButton("隨便拉",null)
.setNeutralButton("喔是喔",null)
後面null表示不處理
new AlertDialog.Builder(MainActivity.this)
.setMessage("你成功了")
.setTitle("AlertDialog")
.setIcon(android.R.drawable.presence_away)
.setNegativeButton("否",null)
.setPositiveButton("隨便拉",null)
.setNeutralButton("喔是喔",null)
.show();
執行結果: